/*
 * CommandLineParsers.h
 *
 *  Created on: Apr 3, 2010
 *      Author: Lukasz Spintzyk
 */

#ifndef COMMANDLINEPARSERS_H_
#define COMMANDLINEPARSERS_H_

#ifndef PH_H_
#include "ph.h"
#endif

#include <errno.h>
#include <fcntl.h>
#include <stddef.h>


class Filesystem;

struct FilesystemMountArgs
{
	bool exit;
	std::string file;
	std::string key;
	std::string iv;
	std::string mountpoint;

	boost::shared_ptr<Filesystem> filesystem;

};

struct FilesystemMkfsArgs
{
	FilesystemMkfsArgs();

	struct FilesystemMountArgs mount;

    uint32_t blockSize;
    uint32_t blocksPerGroup;
    uint32_t groupsCount;
    uint32_t inodesPerGroup;
    uint32_t checkInterval;
    uint32_t maxMntCount;
};

struct FilesystemMkfsArgs parseMkfsArgs(int argc, char* argv[]);

struct FilesystemMountArgs parseMountArgs(int argc, char* argv[]);


#endif /* COMMANDLINEPARSERS_H_ */
